<?php
/**
 *title
 * @author: lican<364548233@qq.com>
 *Date: 2020/6/10
 *Time: 19:27
 */

namespace App\Http\Services;

/**
 *消息输出服务类
 * @author: lican<364548233@qq.com>
 */
class MsgService{

    public static $msgMap = [
        '0' => 'ok',

        '1000' => '网络错误，请稍后再试',
        '1001' => '需要登录',
        '1002' => '修改失败，请稍后重试',
        '1003' => '登陆失败',
        '1004' => '请求接口失败',
        '1005' => '签名验证不通过',
        '1006' => '请求接口参数错误',
        '1007' => '验证码错误',

        '1008' => 'APPKEY错误',
        '1009' => '请求参数有误',

        // 调用OPEN-API接口结果
        '2000' => '获取access token失败',
        '2001' => '获取管理员信息失败',
        '2002' => '该用户不存在',
        '2003' => '该用户没有管理此学校的权限',
        '2004' => '该用户没有管理此应用的权限',
        '2005' => '该学校没有开启该应用，请与学校管理员联系',
        '2006' => '组织架构获取失败',
        '2007' => '获取用户信息失败',

        // 消息通知发送返回码
        '3001' => '没有权限',
        '3002' => '参数错误',
        '3003' => '网络错误，请重试',
        '3004' => '发送错误，签名校验失败',
        '3005' => '学校标识码不合法',

        // 移动端登录
        '4000' => '获取身份失败',
        '4001' => '需要授权',
        '4002' => '不存在该学校配置',
        '4003' => '没有查询到该学生的信息',
        '4004' => '没有查询到该计划的相关步骤信息',
        '4005' => '没有查询到该学生的相关步骤信息',
        '4006' => '没有查询到该用户相关信息',
        '4007' => '非本校校园码',
        '4008' => '该用户无此操作权限',
        '4009' => '该学生非本计划人员',
        '4010' => '没有查询到该学生有关联计划',
        '4011' => '没有查询到该白名单与计划关联',
        '4012' => '二维码已过期',
        '4013' => '该生未完成线上预报到',
        '4014' => '数字迎新仅对新生开放，请返回',
        '4015' => '请先添加体验白名单，再尝试进入',
        '4016' => '不在迎新日期范围内',
        '4017' => '用户不在迎新计划中',
        '4018' => '有必填项，数据不能为空',
        '4019' => '该学生不符合校验标准',

        // 上传管理
        '5000' => '上传文件参数缺失',
        '5001' => '上传文件不存在',
        '5002' => '导入文件失败',
        '5003' => '上次导入还未处理结束',
        '5004' => '未产生数据更新或更新失败',
        '5005' => '文件格式不正确',

        //计划管理
        '6001'  =>  '名称已存在',
        '6002'  =>  '超过最大值',
        '6003'  =>  '已过期',
        '6004'  =>  '计划信息错误',
        '6005'  =>  '步骤信息错误',
        '6006'  =>  '配置信息错误',
        '6007'  =>  '未找到已缴费信息',
        '6008'  =>  '计划已发布，无法修改',
        '6009'  =>  '信息已存在',
        '6010'  =>  '未查询到有效计划',
        '6011'  =>  '超过字数限制',
        '6012'  =>  '请去白名单管理页面进行白名单删除',
        '6013'  =>  '请去校验人员管理页面进行校验人员删除',
        '6014'  =>  '确认书名字不能相同',
        '6015'  =>  '请先确认绑定的身份是否为本校新生',
        '6016'  =>  '字数过长',
        '6017'  =>  '上传文件不能大于1M',
        '6018'  =>  '暂无权限进行比操作，请联系管理员',

        //学生信息
        '7000' => "不存在上次导入记录",
        '7001' => "更新失败",
        '7002' => "组织架构未分类",
        '7003' => "正在处理中请稍后",
        '7004' => "该学生线上步骤还未全部完成",
        '7005' => "该学生已经产生关联数据",
        '7006' => '该学号无法添加',

        //学校信息
        '8000' => "该学校不存在",

        //权限
        '9000' => '权限已存在',
        '9001' => '权限添加失败，请稍后重试',
        '9002' => '数据错误',
        '9003' => '使用中的权限不允许删除',

        //角色
        '10001' => '角色名称已存在',
        '10002' => '数据错误',
        '10003' => '已启用的角色不能删除',
        '10004' => '角色被禁用',
        '10005' => '角色不存在',
        '10006' => '管理员不存在',
        '10007' => '没有权限',
        '10008' => '超管不能编辑/删除',

        //文章类型
        '100011' => '文章类型名称已存在',
        '100012' => '数据错误',

        //文章
        '100020' => '文章标题已存在',
        '100021' => '文章标题长度不能超过8个汉字',
        '100022' => '文章数据错误',

        //应缴类型
        '100030' => '应缴类型已存在',
        '100031' => '应缴类型名称长度不能超过8个字',
        '100032' => '应缴类型不存在',
        '100033' => '应缴项目已存在',
        '100034' => '特约商户配置错误',
        '100035' => '授信方不存在',
        '100036' => '该授权方不在学校的对接方列表中',

        '100040' => '登录用户信息有误，请重新登录',
        '100041' => '聊天朋友不存在',

        '100050' => '手机号错误',
        '100051' => '验证码已失效',
        '100052' => '验证码错误',
        '100053' => '邮箱格式错误',
        '100054' => '注册方式错误',
        '100055' => '该邮箱已注册，请直接登录',
        '100056' => '该手机号已注册， 请直接登录',
        '100057' => '用户名已存在',
        '100058' => '登录态失效，请重新从校园卡进入应用',


        '100060' => '用户不存在',
        '100061' => '密码错误',
        '100062' => '限制登录，请联系超级管理员',
        '100063' => '异地登录',
        '100064' => '启用的管理员不能删除',
        '100065' => '管理员不存在或被限制登录',

        '100070' => '角色不存在',
        '100071' => '角色限制登录，请联系超级管理员',
        '100072' => '角色暂未分配权限，请联系管理员',

        '100080' => '分类名称已存在',
        '100081' => '启用状态下的分类不允许删除',
        '100082' => '属性值已存在',
        '100083' => '商品名称已存在',
        '100084' => '商品不存在',
        '100085' => '商品已下架',

        '100090' => 'PM已存在',
        '100091' => 'PM启用状态不能删除',

        '100100' => '该问题答案为空，不能置为已处理',
        '100101' => '数据有误',
        '100102' => '问题已分配或已被处理',
        '100103' => '问题已处理完成，不允许重复处理',
        '100104' => '未分配的问题不允许处理',
        '100105' => '非问题的分配者不允许处理',

        '100200' => '文件上传失败',





        //权限-wzy
        '90000' => '请传参数',
        '90001' => '更新失败',
        '90002' => '权限名称已存在',
        '90003' => '权限插入失败',
        '90004' => '请先删除子权限',
        '90005' => '删除失败',
        '90006' => '批量删除失败',
        '90007' => '格式错误',
        '90008' => '数据错误',
        '90009' => '编辑失败',


        //角色wzy
        '-10000' => '数据错误',
        '-10001' => '超级管理员不能被编辑',
        '-10002' => '修改失败',
        '-10003' => '该角色已存在',
        '-10004' => '增加失败',
        '-10005' => '该角色不存在',
        '-10006' => '已启用的角色不能删除',
        '-10007' => '超级管理员不能被删除',
        '-10008' => '删除失败',
        '-10009' => '该角色不存在',
        '-10010' => '应用code不存在',

        //用户-wzy
        '-20000' => '应用错误',
        '-20001' => '此卡号已存在',
        '-20002' => '数据不存在',
        '-20003' => '角色不能为空',
        '-20004' => '用户插入失败',
        '-20005' => '用户插入失败',
        '-20006' => '用户插入失败',
        //es搜索
        '-30001' => '数据插入失败',
        '-30002' => '数据编辑失败',
        '-30003' => '数据删除失败',
        '-30004' => '数据查询失败',
        //聊天室
        '-40001' => '获取用户失败',

    ];

    public static $errMsgMap = [
        '0'     => '0',
        '1003' => '3001',
        '1004' => '3002',
        '1015' => '3003',
        '1023' => '3004',
        '40015' => '2002',
        '40016' => '2003',
        '40017' => '2004',
        '40018' => '2005',
        '47001' => '3005',
    ];

    /**
     *获取标准提示信息
     * @author: lican<364548233@qq.com>
     */
    public static function getMsg($code, $others = []){
        $error = [
            'code' => $code,
            'msg' => self::$msgMap[$code]
        ];
        if(is_array($others) && !empty($others)){
            $error = array_merge($error, $others);
        }
        return $error;
    }

    /**
     *获取接口类提示
     * @author: lican<364548233@qq.com>
     */
    public static function getInterfaceMsg($code, $others = []){
        $error = [
            'errcode' => $code,
            'errmsg' => self::$msgMap[$code]
        ];

        if(is_array($others) && !empty($others)){
            $error = array_merge($error, $others);
        }

        return $error;
    }

    /**
     *获取接口类过滤提示
     * @author: lican<364548233@qq.com>
     */
    public static function getErrMsg($code, $others = []){
        $code = self::$errMsgMap[$code] ?: null;
        if(isset($code) && isset(self::$msgMap[$code])){
            return self::getMsg($code, $others);
        }
        return self::getMsg(1000, $others);
    }

}
